package com.example.myapplication;

import androidx.annotation.NonNull;

import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.util.Log;

import com.example.myapplication.listener.TabListener;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
//        setContentView(R.layout.activity_main);
//        setContentView(R.layout.tab_fragment);
//        //获取操作栏实例
        final ActionBar bar = getSupportActionBar();
        if(bar == null){
            Log.i("activity", "bar is null");
            return;
        }
        //设置为Tab导航栏模式
        bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
        /*
        setDisplayOptions(int options, int mask)函数的options参数表示显示的内容，
        而mask参数则表示不显示的内容。
        关闭“显示标题文字(DISPLAY_SHOW_TITLE)”
         */
        bar.setDisplayOptions(0, ActionBar.DISPLAY_SHOW_TITLE);
        //设置Tab页的标题，定义Tab页点击事件的监听函数。
        bar.addTab(bar.newTab()
                .setText("Fragment A")
                .setTabListener(new TabListener<AFragment>(this, "fa", AFragment.class)));
        bar.addTab(bar.newTab()
                .setText("Fragment B")
                .setTabListener(new TabListener<BFragment>(this, "fb", BFragment.class)));
        //如果Activity不是首次启动，则在savedInstanceState变量中获取当前Tab页的索引号。
        if (savedInstanceState != null) {
            bar.setSelectedNavigationItem(savedInstanceState.getInt("tab", 0));
        }
    }
    //在Activity临时推出时，将当前Tab页的索引号保存在Bundle中
    @Override
    public void onSaveInstanceState(@NonNull Bundle outState) {
        super.onSaveInstanceState(outState);
        outState.putInt("tab", getActionBar().getSelectedNavigationIndex());
    }
}